home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / DMAKE38B.ARJ / MALLOC.H < prev    next >
C/C++ Source or Header  |  1992-01-23  |  3KB  |  104 lines

  1. /*
  2.  * (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil).  
  3.  * You may copy, distribute, and use this software as long as this
  4.  * copyright statement is not removed.
  5.  */
  6. /*
  7.  * $Id: malloc.h,v 1.1 1992/01/24 03:29:06 dvadura Exp $
  8.  */
  9. struct mlist
  10. {
  11.     struct mlist    * next;            /* next entry in chain    */
  12.     struct mlist    * prev;            /* prev entry in chain    */
  13.     int           flag;            /* inuse flag        */
  14.     unsigned int      r_size;        /* requested size    */
  15.     union
  16.     {
  17.         unsigned int      size;        /* actual size        */
  18.         double          unused_just_for_alignment;
  19.     } s;
  20.     char          data[4];
  21. };
  22.  
  23. #define M_SIZE        ((int)(char *)((struct mlist *)0)->data)
  24. #define M_RND        0x08
  25.  
  26. #define M_INUSE     0x01
  27. #define M_MAGIC     0x03156100
  28.  
  29. #define M_BLOCKSIZE    (1024*8)
  30.  
  31. #define M_FILL        '\01'
  32. #define M_FREE_FILL    '\02'
  33.  
  34. #define M_ROUNDUP(size)    {\
  35.                 if( size & (M_RND-1) ) \
  36.                 { \
  37.                     size &= ~(M_RND-1); \
  38.                     size += M_RND; \
  39.                 } \
  40.             }
  41.  
  42. /*
  43.  * Malloc warning/fatal error handler defines...
  44.  */
  45. #define M_HANDLE_DUMP    0x80  /* 128 */
  46. #define M_HANDLE_IGNORE    0
  47. #define M_HANDLE_ABORT    1
  48. #define M_HANDLE_EXIT    2
  49. #define M_HANDLE_CORE    3
  50.     
  51. /*
  52.  * Mallopt commands and defaults
  53.  */
  54.  
  55. #define MALLOC_WARN    1        /* set malloc warning handling    */
  56. #define MALLOC_FATAL    2        /* set malloc fatal handling    */
  57. #define MALLOC_ERRFILE    3        /* specify malloc error file    */
  58. #define MALLOC_CKCHAIN    4        /* turn on chain checking    */
  59. union malloptarg
  60. {
  61.     int      i;
  62.     char    * str;
  63. };
  64.  
  65. /*
  66.  * Malloc warning/fatal error codes
  67.  */
  68.  
  69. #define M_CODE_CHAIN_BROKE    1    /* malloc chain is broken    */
  70. #define M_CODE_NO_END        2    /* chain end != endptr        */
  71. #define M_CODE_BAD_PTR        3    /* pointer not in malloc area    */
  72. #define M_CODE_BAD_MAGIC    4    /* bad magic number in header    */
  73. #define M_CODE_BAD_CONNECT    5    /* chain poingers corrupt    */
  74. #define M_CODE_OVERRUN        6    /* data overrun in malloc seg    */
  75. #define M_CODE_REUSE        7    /* reuse of freed area        */
  76. #define M_CODE_NOT_INUSE    8    /* pointer is not in use    */
  77. #define M_CODE_NOMORE_MEM    9    /* no more memory available    */
  78. #define M_CODE_OUTOF_BOUNDS    10    /* gone beyound bounds         */
  79.  
  80. void malloc_warning();
  81. void malloc_fatal();
  82. void malloc_check_data();
  83. void malloc_check_str();
  84. void malloc_verify();
  85.  
  86. /*
  87.  * $Log: malloc.h,v $
  88.  * Revision 1.1  1992/01/24  03:29:06  dvadura
  89.  * dmake Version 3.8, Initial revision
  90.  *
  91.  * Revision 1.4  90/08/29  22:23:38  cpcahil
  92.  * fixed mallopt to use a union as an argument.
  93.  * 
  94.  * Revision 1.3  90/05/11  11:04:10  cpcahil
  95.  * took out some extraneous lines
  96.  * 
  97.  * Revision 1.2  90/05/11  00:13:09  cpcahil
  98.  * added copyright statment
  99.  * 
  100.  * Revision 1.1  90/02/23  07:09:03  cpcahil
  101.  * Initial revision
  102.  * 
  103.  */
  104.